package com.ruirui.demo;


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.Arrays;
import java.util.List;
import java.util.stream.Stream;

public class MapDemo {

    // 创建一个内部类
    @Data
    @AllArgsConstructor
    @NoArgsConstructor
    public static class Person {
        private String name;
        private int age;

        // 添加构造函数
    }

    public static void main(String[] args) {
        System.out.println("Hello world!");

        // 示例：创建内部类实例 一个流
        Stream<Person> stream = List.of(new Person("张三", 18),
                        new Person("李四", 19),
                        new Person("王五", 20))
                .stream();

        stream
                //过滤 组成新流
                .filter(person -> person.getAge() > 18)
                // 映射 组成新流 引用get方法
                .map(Person::getName)
                //flatMap 将名字拆开组成新流 它属于一对多映射
                .flatMap(person -> {
                    String[] split = person.split("");
                    return Arrays.stream(split);
                })
                .forEach(System.out::println);

    }
}
